home *** CD-ROM | disk | FTP | other *** search
/ Gekkan Dennou Club 142 / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan).7z / Gekkan Dennou Club - 2000.3 Vol. 142 (Japan) (Track 1).bin / tools / s44play / s44p101s.lzh / dosconst.equ < prev    next >
Text File  |  1999-10-19  |  8KB  |  201 lines

  1.   .ifndef __DOSCONST_EQU__
  2. __DOSCONST_EQU__    equ    1
  3.  
  4. ;----------------------------------------------------------------
  5. ;メモリ管理テーブル
  6.     .offset    0
  7. mmPrev:        .ds.l    1    ;$0000    .l    直前のメモリ管理テーブルのアドレス(なければ0)
  8. mmParent:    .ds.l    1    ;$0004    .l    このブロックを確保したプロセスのメモリ管理テーブルのアドレス
  9.                 ;    最上位1バイトは
  10.                 ;        $00=通常のメモリブロック
  11.                 ;        $FD=_S_PROCESSによるサブのメモリ管理の親のメモリブロック
  12.                 ;        $FF=常駐したプロセスのメモリブロック
  13. mmTail:        .ds.l    1    ;$0008    .l    使用している末尾アドレス+1
  14. mmNext:        .ds.l    1    ;$000C    .l    直後のメモリ管理テーブルのアドレス(なければ0)
  15. mmSize:                ;$0010    (16バイト)
  16. ;プロセス管理テーブル
  17. mmEnvPtr:    .ds.l    1    ;$0010    .l    環境の領域のアドレス
  18. mmExitvc:    .ds.l    1    ;$0014    .l    _EXITVCのベクタ(親の_EXECの直後)
  19. mmCtrlvc:    .ds.l    1    ;$0018    .l    _CTRLVCのベクタ
  20. mmErrjvc:    .ds.l    1    ;$001C    .l    _ERRJVCのベクタ
  21. mmCmdLinePtr:    .ds.l    1    ;$0020    .l    コマンドラインのアドレス
  22. mmHandler:    .ds.b    12    ;$0024    .b[12]    ハンドラの使用状況
  23. mmBssTop:    .ds.l    1    ;$0030    .l    bssの先頭
  24. mmHeapTop:    .ds.l    1    ;$0034    .l    ヒープの先頭
  25. mmStackTop:    .ds.l    1    ;$0038    .l    スタックエリアの先頭
  26. mmUsp:        .ds.l    1    ;$003C    .l    親のusp
  27. mmSsp:        .ds.l    1    ;$0040    .l    親のssp
  28. mmSr:        .ds.w    1    ;$0044    .w    親のsr
  29. mmAbortSr:    .ds.w    1    ;$0046    .w    アボート時のsr
  30. mmAbortSsp:    .ds.l    1    ;$0048    .l    アボート時のssp
  31. mmTrap10:    .ds.l    1    ;$004C    .l    TRAP#10のベクタ
  32. mmTrap11:    .ds.l    1    ;$0050    .l    TRAP#11のベクタ
  33. mmTrap12:    .ds.l    1    ;$0054    .l    TRAP#12のベクタ
  34. mmTrap13:    .ds.l    1    ;$0058    .l    TRAP#13のベクタ
  35. mmTrap14:    .ds.l    1    ;$005C    .l    TRAP#14のベクタ
  36. mmOsFlag:    .ds.l    1    ;$0060    .l    OSフラグ(-1=CONFIG.SYSのSHELLで起動,0=その他)
  37. mmModuleNumber:    .ds.b    1    ;$0064    .b    モジュール番号
  38.         .ds.b    3    ;$0065    .b[3]    未定義
  39. mmChildPtr:    .ds.l    1    ;$0068    .l    子プロセスのメモリ管理テーブル
  40.         .ds.l    5    ;$006C    .l[5]    予約
  41. mmPath:        .ds.b    68    ;$0080    .b[68]    実行ファイルのパス
  42. mmName:        .ds.b    24    ;$00C4    .b[24]    実行ファイルのファイル名
  43.         .ds.l    9    ;$00DC    .l[9]    予約
  44. mmProgram:
  45.     .text
  46.  
  47. ;----------------------------------------------------------------
  48. ;プロセス管理テーブル
  49.     .offset    0
  50. pmEnvPtr:    .ds.l    1    ;$0000    .l    環境の領域のアドレス
  51. pmExitvc:    .ds.l    1    ;$0004    .l    _EXITVCのベクタ(親の_EXECの直後)
  52. pmCtrlvc:    .ds.l    1    ;$0008    .l    _CTRLVCのベクタ
  53. pmErrjvc:    .ds.l    1    ;$000C    .l    _ERRJVCのベクタ
  54. pmCmdLinePtr:    .ds.l    1    ;$0010    .l    コマンドラインのアドレス
  55. pmHandler:    .ds.b    12    ;$0014    .b[12]    ハンドラの使用状況
  56. pmBssTop:    .ds.l    1    ;$0020    .l    bssの先頭
  57. pmHeapTop:    .ds.l    1    ;$0024    .l    ヒープの先頭
  58. pmStackTop:    .ds.l    1    ;$0028    .l    スタックエリアの先頭
  59. pmUsp:        .ds.l    1    ;$002C    .l    親のusp
  60. pmSsp:        .ds.l    1    ;$0030    .l    親のssp
  61. pmSr:        .ds.w    1    ;$0034    .w    親のsr
  62. pmAbortSr:    .ds.w    1    ;$0036    .w    アボート時のsr
  63. pmAbortSsp:    .ds.l    1    ;$0038    .l    アボート時のssp
  64. pmTrap10:    .ds.l    1    ;$003C    .l    TRAP#10のベクタ
  65. pmTrap11:    .ds.l    1    ;$0040    .l    TRAP#11のベクタ
  66. pmTrap12:    .ds.l    1    ;$0044    .l    TRAP#12のベクタ
  67. pmTrap13:    .ds.l    1    ;$0048    .l    TRAP#13のベクタ
  68. pmTrap14:    .ds.l    1    ;$004C    .l    TRAP#14のベクタ
  69. pmOsFlag:    .ds.l    1    ;$0050    .l    OSフラグ(-1=CONFIG.SYSのSHELLで起動,0=その他)
  70. pmModuleNumber:    .ds.b    1    ;$0054    .b    モジュール番号
  71.         .ds.b    3    ;$0055    .b[3]    未定義
  72. pmChildPtr:    .ds.l    1    ;$0058    .l    子プロセスのメモリ管理テーブル
  73.         .ds.l    5    ;$005C    .l[5]    予約
  74. pmPath:        .ds.b    68    ;$0070    .b[68]    実行ファイルのパス
  75. pmName:        .ds.b    24    ;$00B4    .b[24]    実行ファイルのファイル名
  76.         .ds.l    9    ;$00CC    .l[9]    予約
  77. pmSize:                ;$00F0    (240バイト)
  78. pmProgram:
  79.     .text
  80.  
  81. ;----------------------------------------------------------------
  82. ;_NAMESTS形式のファイル名
  83.     .offset    0
  84. nsFlag:        .ds.b    1    ;$0000    フラグ
  85. nsDrive:    .ds.b    1    ;$0001    内部ドライブ番号(0=A:)
  86. nsPath:        .ds.b    65    ;$0002    パス(前後と区切りは$09または'\')
  87. nsName1:    .ds.b    8    ;$0043    ファイル名1(残りは' ')
  88. nsExt:        .ds.b    3    ;$004B    拡張子(残りは' ')
  89. nsName2:    .ds.b    10    ;$004E    ファイル名2(残りは0)
  90. nsSize:                ;$0056    (88バイト)
  91.     .text
  92.  
  93. ;----------------------------------------------------------------
  94. ;_NAMECKのバッファの構造
  95.     .offset    0
  96. ncDrive:    .ds.b    2    ;$0000    ドライブ名('A:')
  97. ncPath:        .ds.b    65    ;$0002    パス('/path/',0)
  98. ncName:        .ds.b    19    ;$0043    ファイル名('name',0)
  99. ncExt:        .ds.b    5    ;$0056    拡張子('.ext',0)
  100. ncSizeOdd:            ;$005B    (91バイト)
  101.     .even
  102. ncSize:                ;$005C    (92バイト)
  103.     .text
  104.  
  105. ;----------------------------------------------------------------
  106. ;_FILES,_NFILESのバッファ
  107. ;fSys~は環境によって異なるので使わないこと
  108. ;fLong~はバッファアドレスのbit31を1にしたとき有効
  109.     .offset    0
  110. fiSysAttribute:    .ds.b    1    ;$0000    検索する属性
  111. fiSysDrive:    .ds.b    1    ;$0001    検索する内部ドライブ番号(0=A:)
  112. fiSysSector:    .ds.l    1    ;$0002    エントリがあるセクタ番号
  113. fiSysConnect:    .ds.w    1    ;$0006    連続しているセクタ数-1
  114. fiSysOffset:    .ds.w    1    ;$0008    セクタ先頭からのオフセット
  115.                 ;    ($FFFF=該当するファイルがもうない)
  116. fiSysName:    .ds.b    8    ;$000A    検索するファイル名
  117. fiSysExt:    .ds.b    3    ;$0012    検索する拡張子
  118. fiAttribute:    .ds.b    1    ;$0015    属性
  119. fiTime:        .ds.w    1    ;$0016    時刻
  120. fiDate:        .ds.w    1    ;$0018    日付
  121. fiLength:    .ds.l    1    ;$001A    ファイルサイズ
  122. fiName:        .ds.b    23    ;$001E    ファイル名
  123. fiSizeOdd:            ;$0035    (53バイト)
  124.     .even
  125. fiSize:                ;$0036    (54バイト)
  126.     .offset    fiSizeOdd
  127. fiLongNamests:
  128. fiLongDrive:    .ds.b    2    ;$0035    内部ドライブ名('A:')
  129. fiLongPath:    .ds.b    65    ;$0037    パス(区切りは'\')
  130. fiLongName1:    .ds.b    8    ;$0078    ファイル名1(残りは' 'または'?')
  131. fiLongExt:    .ds.b    3    ;$0080    拡張子(残りは' 'または'?')
  132. fiLongName2:    .ds.b    10    ;$0083    ファイル名2(残りは0)
  133. fiLongSize:            ;$008D
  134.     .text
  135.  
  136. ;----------------------------------------------------------------
  137. ;スレッド管理テーブル
  138.     .offset    0
  139. thNext:        .ds.l    1    ;$0000    次のスレッド管理テーブルのアドレス
  140. thFlag:        .ds.b    1    ;$0004    ウェイトフラグ(-2=強制スリープ状態,-1=スリープ状態,0=実行中)
  141. thCount:    .ds.b    1    ;$0005    カウンタ
  142. thNice:        .ds.b    1    ;$0006    最大カウント(優先レベル)
  143. thDosCall:    .ds.b    1    ;$0007    実行中の(レベル0で入った)DOSコール番号
  144. thProcess:    .ds.l    1    ;$0008    実行中のプロセスのメモリ管理テーブル
  145. thRegs:
  146. thRegUsp:    .ds.l    1    ;$000C    usp
  147. thhRegD0:    .ds.l    1    ;$0010    d0
  148. thRegD1:    .ds.l    1    ;$0014    d1
  149. thRegD2:    .ds.l    1    ;$0018    d2
  150. thRegD3:    .ds.l    1    ;$001C    d3
  151. thRegD4:    .ds.l    1    ;$0020    d4
  152. thRegD5:    .ds.l    1    ;$0024    d5
  153. thRegD6:    .ds.l    1    ;$0028    d6
  154. thRegD7:    .ds.l    1    ;$002C    d7
  155. thRegA0:    .ds.l    1    ;$0030    a0
  156. thRegA1:    .ds.l    1    ;$0034    a1
  157. thRegA2:    .ds.l    1    ;$0038    a2
  158. thRegA3:    .ds.l    1    ;$003C    a3
  159. thRegA4:    .ds.l    1    ;$0040    a4
  160. thRegA5:    .ds.l    1    ;$0044    a5
  161. thRegA6:    .ds.l    1    ;$0048    a6
  162. thRegSr:    .ds.w    1    ;$004C    sr
  163. thRegPc:    .ds.l    1    ;$004E    pc
  164. thRegSsp:    .ds.l    1    ;$0052    ssp
  165. thDosLevel:    .ds.w    1    ;$0056    DOSコールのレベル
  166. thDosSp:    .ds.l    1    ;$0058    DOSコールにレベル0で入ったときのsp
  167. thCBuffer:    .ds.l    1    ;$005C    スレッド間通信バッファのアドレス
  168. thThreadName:    .ds.b    16    ;$0060    スレッド名
  169. thWaitTime:    .ds.l    1    ;$0070    ウェイトタイム
  170. ;(以下は_GET_PRでコピーされない)
  171. thMemStart:    .ds.l    1    ;$0074    _MALLOCできるメモリ空間の先頭アドレス
  172. thMemEnd:    .ds.l    1    ;$0078    _MALLOCできるメモリ空間の末尾アドレス+1
  173. thSize:                ;$007C    (124バイト)
  174.     .text
  175.  
  176. ;----------------------------------------------------------------
  177. ;DOSコールにレベル0で入ったときのSSP([$1C5C].l)からのオフセット
  178.     .offset    0
  179. dosD1:        .ds.l    1    ;$0000    d1
  180. dosD2:        .ds.l    1    ;$0004    d2
  181. dosD3:        .ds.l    1    ;$0008    d3
  182. dosD4:        .ds.l    1    ;$000C    d4
  183. dosD5:        .ds.l    1    ;$0010    d5
  184. dosD6:        .ds.l    1    ;$0014    d6
  185. dosD7:        .ds.l    1    ;$0018    d7
  186. dosA0:        .ds.l    1    ;$001C    a0
  187. dosA1:        .ds.l    1    ;$0020    a1
  188. dosA2:        .ds.l    1    ;$0024    a2
  189. dosA3:        .ds.l    1    ;$0028    a3
  190. dosA4:        .ds.l    1    ;$002C    a4
  191. dosA5:        .ds.l    1    ;$0030    a5
  192. dosA6:        .ds.l    1    ;$0034    a6
  193. dosSR:        .ds.w    1    ;$0038    sr
  194. dosPC:        .ds.l    1    ;$003A    pc
  195. dosFormat:    .ds.w    1    ;$003E    例外フォーマットワード
  196. dosSSP:                ;$0040    (DOSコールにレベル0で入る前のSSPの位置)
  197.     .text
  198.  
  199. ;----------------------------------------------------------------
  200.   .endif    ;__DOSCONST_EQU__
  201.